/**获取经纬度的方法*/
// #ifdef MP-WEIXIN

function getLocationClass(){
	return new Promise((resolve, reject) => {
		//api获取经纬度
		uni.getLocation({
		  type: 'gcj02',
		  isHighAccuracy: true,
		  success: (res) => {
		    //获取用户坐标
		    let latitude = res.latitude;
		    let longitude = res.longitude;
				resolve({latitude, longitude});
			},fail: (e) => {
				uni.showModal({
					title: '系统提示',
					content: '定位失败，请检查网络或系统定位',
					cancelText: '手动定位',
					confirmText: '重新定位',
					success: function (res) {
						if (res.confirm) {
							settingAction();
						} else if (res.cancel) {
							resolve(false);
						}
					}
				});
				reject('30秒重试');
			}
		})
	})

}

/**页面初始化的时候调用授权*/
const authorizeAction = () => {
	return new Promise((resolve, reject) => {
		uni.authorize({
			scope: 'scope.userLocation',
			success: async () => {
				//调用获取经纬度的方法
				const data = await getSystemInfoClass();
				resolve(data)
			},fail: () => {
				reject('用户拒绝授权');
			}
		})
	})
}

/**判断用户当前是否开启定位*/
const settingAction = () => {
	return new Promise((resolve, reject) => {
		//获取当前用户的授权信息
		uni.getSetting({
		  success: async (res) => {
		    if(!res.authSetting['scope.userLocation']){
					//如果用户没有开启权限就打开设置
		      uni.openSetting();
		    }else{
					//如果开启了权限，就调用系统信息api判断当前是否开启系统定位服务
					const data = await getSystemInfoClass();
					resolve(data)
				}
		  },fail: () => {
		  	reject('未获取到系统信息');
		  }
		})
	})
}

/**判断当前系统定位服务是否开启*/
function 	getSystemInfoClass(){
	return new Promise((resolve, reject) => {
		uni.getSystemInfo({
			success: async (res) =>{
				if(res.locationEnabled == false){
					//如果没有开启定位， 那么提示用户是否跳转到设置开启
					uni.showToast({
						title: '定位未开启',
						icon: 'none'
					})
		// 			uni.showModal({
		// 				title: '系统提示',
		// 				content: '开启定位',
		// 				success: function (res) {
		// 					if (res.confirm) {
		
		// 					} else if (res.cancel) {}
		// 				}
		// 			});
				}else{
					try{
						const data = await getLocationClass();
						resolve(data);
					}catch(e){
						reject(e)
					}
				}
			}
		})
	})
}				

export default {
	authorizeAction,   //授权入口
	settingAction			 //定位入口
}

// #endif






